Field of the Invention
The present invention relates to a connection control conducted in a communication network. In particular, the present invention relates to a method, apparatus and computer program product providing a mechanism for connecting two parties in a communication network environment (such as IMS) when a back to back user agent (providing functions like call forwarding etc.) and network address translation function are involved in the establishment of the connection.
Related Background Art
Prior art which is related to this technical field can e.g. be found by the technical specification 3GPP ETSI TS 183 017 (current version: 3.2.1) and ITU-T specification H.248.37.
The following meanings for the abbreviations used in this specification apply:
3GPP—3rd generation partnership project
B2BUA—back-to-back user agent
BGF—border gateway function
Call Fwd—call forward
IP—Internet protocol
IMS—IP multimedia subsystem
LAN—local area network
LI—lawful intercept
NAT—network address translation
NAPT—network address port translation
P-CSCF—proxy call state control function
PBX—private branch exchange
PDF—policy decision function
SBC—session border controller
SDP—session description protocol
SIP—session initiation protocol
SPDF—service policy decision function
UE—user equipment
VoIP—voice over IP
In the last years, an increasing extension of communication networks, e.g. of wire based communication networks, such as the Integrated Services Digital Network (ISDN), DSL, or wireless communication networks, such as the cdma2000 (code division multiple access) system, cellular 3rd generation (3G) communication networks like the Universal Mobile Telecommunications System (UMTS), enhanced communication networks based e.g. on LTE, cellular 2nd generation (2G) communication networks like the Global System for Mobile communications (GSM), the General Packet Radio System (GPRS), the Enhanced Data Rates for Global Evolutions (EDGE), or other wireless communication system, such as the Wireless Local Area Network (WLAN) or Worldwide Interoperability for Microwave Access (WiMAX), took place all over the world. Various organizations, such as the 3rd Generation Partnership Project (3GPP), Telecoms & Internet converged Services & Protocols for Advanced Networks (TISPAN), the International Telecommunication Union (ITU), 3rd Generation Partnership Project 2 (3GPP2), Internet Engineering Task Force (IETF), the IEEE (Institute of Electrical and Electronics Engineers), the WiMAX Forum and the like are working on standards for telecommunication network and access environments.
Generally, for properly establishing and handling a communication connection between network elements such as a UE and another communication equipment, such as a database, a server, etc., one or more intermediate network elements, such as network control nodes, support nodes, service nodes and interworking elements are involved which may belong to different communication networks.
A current technology to merge the Internet with the cellular telecommunication world is the Internet Protocol (IP) Multimedia Subsystem IMS. IMS is a standardized architecture for operators intending to provide mobile and fixed multimedia services. IMS uses a Voice over IP (VoIP) implementation based on a 3GPP standardized implementation of Session Initiation Protocol (SIP) and runs over the standard Internet Protocol (IP). Both PS and CS communication systems are supported.
As a signaling mechanisms used in connections or sessions between the IMS network elements and an user equipment or the like, SIP is used as a signaling protocol, while SDP is used for session description. Details of the structure and procedures executed in IMS are described in the related standards and are commonly known to a person skilled in the art so that a further description thereof is omitted herein for the sake of simplicity.
An entry point to an IMS system for a subscriber UE is, for example, a P-CSCF. The P-CSCF functional entity may act as the controller of a Session Border Controller (SBC). The SBC is for example an entity or device used in VoIP networks to exert control over the signaling and also over the media streams.
An example of a logical architecture of an SBC 1 is shown in FIG. 10. The SBC 1 may consist of a border control function 2 and a border gateway function (BGF) 3. The border control function may consist of two elements or entities, i.e. the P-CSCF 4 acting as a controller and a SPDF 5 acting as a policy decision function. The P-CSCF 4 and the SPDF 5 are connected by a specified interface, for example a so-called Gq′ interface based on a Diameter protocol, and the SPDF 5 and the BGF 3 may be connected by another interface, for example a so-called Ia interface based on H.248 protocol.
For routing media streams, the BGF may be used as an IP-IP gateway under the control of the P-CSCF 4 and the SPDF 5.
One of the features of the SBC 1 is the media traversal through private NAT or NAPT routers via a so called “latching” procedure. Latching represents a standardized procedure known to those skilled in the art which is executed via the Gq′/H.248 interface, wherein a respective H.248 package is used for the direct control of the BGF 3. The principle idea of the latching procedure is that when a session to or from an end point of a communication, for example an UE, located behind a NAT or NAPT device is setup, the BGF 3 does not yet know address information like the IP address and port on the NAPT router where the media stream will be established. Therefore the BGF 3 waits for the first media packet coming from the NAPT device and then sends its media stream to the IP address and port where the media came from, assuming a symmetrical setup of the media streams (i.e. sending port equals receiving port).
In an IP based communication network, such as the SIP based IMS, functionalities like a so-called back-to-back user agent (B2BUA) may be provided. The B2BUA is a logical network element in SIP applications and operates between both end points of a phone call or communication session. The B2BUA can divide the communication channel into two call legs, i.e. it terminates one call leg and originates a second call leg. In the originating call leg the B2BUA acts as a user agent server (UAS) and processes the request as a user agent client (UAC) to the destination end. As control messages for each call flow through the B2BUA, a service provider may implement value-added features available during the call, for example call forwarding, call transfer etc. In other words, a B2BUA may provide various call processing functions.
The B2BUA may controls features like call forwarding by mirroring a received SDP, i.e. a session description element received in the incoming session is re-used or mirrored in the outgoing session.
However, there may be situations where such a processing does not lead to the desired result. For example, a corresponding processing using the mirroring of the received SDP for call forwarding or the like does not work if the B2BUA is located behind a NAT or NAPT device as discussed above. The reason is that the SDP in the session outgoing from the B2BUA is not the original SDP coming from the session initiator. Since the destination of the call or session coming from the session initiator is known to be behind the NAT or NAPT device, the latching procedure is conducted, i.e. the SDP received at the B2BUA (and thus sent via the second session outgoing from the B2BUA) belongs to a BGF that tries to enable media flow through the NAT or NAPT device by the latching procedure. For example, a situation is assumed where a B2BUA is located behind a NAT or NAPT device. For features like call forwarding the B2BUA is set to connect two parties without staying in the media path. In order to connect the two parties, the B2BUA mirrors the received session description element (SDP) of the first session (from the call originator to the B2BUA) in the second session (from the B2BUA to the (new) destination to which the call forwarding process is directed) and vice versa. As a result of the latching and the NAPT traversal, the BGF in the first session waits for media packets before sending media packets itself. On the other hand, because of latching and NAPT traversal, the BGF in the second session waits for media packets before sending media packets itself. This results in a deadlock situation. However, the B2BUA is not aware of this deadlock situation. It has already left the media path and it will never send any media packet.